package clases.personal;

import CapaDatos.DataSource;
import CapaDatos.Sql;
import clases.incio.Paginacion;
import global.Dialogos;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

public class Cargo {

    private int idsectorial;
    private String codigo;
    private String cargo;
    private String sql;
    private DataSource dt;
    public Paginacion objPaginacion;

    public Cargo() {
        dt = new DataSource();
        objPaginacion = new Paginacion();
    }

    public int getIdsectorial() {
        return idsectorial;
    }

    public void setIdsectorial(int idsectorial) {
        this.idsectorial = idsectorial;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getCargo() {
        return cargo;
    }

    public void setCargo(String cargo) {
        this.cargo = cargo;
    }

    private void getMax() {
        idsectorial = Sql.getMax("IDSECTORIAL", "SECTORIAL", true);
    }

    private boolean ExistenciaCargo() {
        sql = "SELECT * FROM SECTORIAL "
                + "WHERE CARGO='" + this.cargo + "' "
                + "AND IDSECTORIAL!=" + this.idsectorial + "";
        return Sql.isExiste(sql);
    }

    private boolean ExistenciaCodigo() {
        sql = "SELECT * FROM SECTORIAL "
                + "WHERE CODIGO='" + this.codigo + "' "
                + "AND IDSECTORIAL!=" + this.idsectorial + "";
        return Sql.isExiste(sql);
    }

    public boolean GuardarSectorial() {
        this.getMax();
        if (this.ExistenciaCodigo() == true) {
            Dialogos.Error("El codigo ya existe");
            return false;
        } else if (this.ExistenciaCargo() == true) {
            Dialogos.Error("El cargo ya existe");
            return false;
        } else if (Sql.insertar("INSERT INTO SECTORIAL VALUES(" + this.idsectorial + ", "
                + "'" + this.codigo + "', '" + this.cargo + "')") == true) {
            Dialogos.GuardadoconExito();
            return true;
        } else {
            Dialogos.Error("Error al guardar el Cargo");
            return false;
        }
    }

    public boolean actualizarCargo() {
        if (this.ExistenciaCodigo() == true) {
            Dialogos.Error("El codigo ya existe");
            return false;
        } else if (this.ExistenciaCargo() == true) {
            Dialogos.Error("El cargo ya existe");
            return false;
        } else if (Sql.actualizar("UPDATE SECTORIAL SET CODIGO='" + this.codigo + "', "
                + "CARGO='" + this.cargo + "' "
                + "WHERE IDSECTORIAL='" + this.idsectorial + "' ") == true) {
            global.Mensajes.mostrarMensaje("Correcto!", "Datos actualizados correctamente", 1);
            return true;
        } else {
            Dialogos.Error("Error al actualizar el cargo");
            return false;
        }
    }

    public void listarCargo(JComboBox cbo) {
        cbo.removeAllItems();
        cbo.addItem("--Seleccione--");
        sql = "SELECT DISTINCT CARGO FROM SECTORIAL ORDER BY(CARGO)";

        Sql.getConsulta(sql, dt);
        while (dt.next()) {
            cbo.addItem(dt.getString(1));
        }
        cbo.setSelectedIndex(0);
    }

    public void sacarIdSectorial(String cargo) {
        sql = "SELECT IDSECTORIAL FROM SECTORIAL "
                + "WHERE CARGO='" + cargo + "'";
        System.out.println(sql);
        Sql.getConsulta(sql, dt);
        while (dt.next()) {
            this.idsectorial = dt.getInt(1);
        }
    }

   /* public void llenardatoCargo() {
        sql = "SELECT CODIGO, CARGO FROM  SECTORIAL "
                + "WHERE CODIGO='" + this.codigo + "' ";

        Sql.getConsulta(sql, dt);
        while (dt.next()) {
            this.codigo = dt.getString(1);
            this.cargo = dt.getString(2);
        }
    }*/

    public String SqlGeneralCargo() {
        sql = "SELECT CODIGO, CARGO FROM SECTORIAL";
        return sql;
    }

    public String SqlCargo(String cargo) {
        sql = "SELECT CODIGO, CARGO FROM SECTORIAL WHERE CARGO LIKE ('" + cargo + "')";
        return sql;
    }

    public String SqlSectorial(String codigo) {
        sql = "SELECT CODIGO, CARGO FROM SECTORIAL WHERE CODIGO LIKE ('" + codigo + "%')";
        return sql;
    }

    public void ConsultaCargo(DefaultTableModel modelo, JTable tabla, String sql, JLabel Lpaginatotal, JLabel Lpagina, int pagina) {
        modelo = new DefaultTableModel() {
            @Override
            public boolean isCellEditable(int fila, int columna) {
                return false;
            }
        };
        tabla.setModel(modelo);
        modelo.addColumn("CODIGO SECTORIAL");
        modelo.addColumn("CARGO");
        TableColumn columna = new TableColumn();
        columna = tabla.getColumnModel().getColumn(0);
        columna.setPreferredWidth(150);

        sql = objPaginacion.getPaginacion(sql, pagina, 25);
        Sql.getConsulta(sql, dt);

        String[] fila;

        while (dt.next()) {
            fila = new String[2];
            fila[0] = dt.getString(1);
            fila[1] = dt.getString(2);

            modelo.addRow(fila);

        }
        objPaginacion.actualPagina(Lpagina);
        objPaginacion.totalPaginas(Lpaginatotal);
        tabla.getSelectionModel().setSelectionInterval(0, 0);
    }
}
